package Z007InterfaceAndExtends.O10inClass;

import Z007InterfaceAndExtends.O01InterfaceJiekou.ADHero;

public class NoNameClass {}

abstract class Hero{

    /**
     * 匿名类指的是在声明一个类的同时实例化它，使代码更加简洁精练
     * 通常情况下，要使用一个接口或者抽象类，都必须创建一个子类
     *
     * 有的时候，为了快速使用，直接实例化一个抽象类，并“当场”实现其抽象方法。
     * 既然实现了抽象方法，那么就是一个新的类，只是这个类，没有命名。
     * 这样的类，叫做匿名类
     */
    String name;
    float hp;
    float armor;
    int moveSpeed;
    public abstract void attack();

    public static void main(String[] args) {
        ADHero adh = new ADHero();
        // 正常的 类 的方法使用

        adh.physicAttack();
        System.out.println(adh);

        //  有的时候，为了快速使用，直接实例化一个抽象类，并“当场”实现其抽象方法。
        //  既然实现了抽象方法，那么就是一个新的类，只是这个类，没有命名。
        HEro h = new HEro() {
            @Override
            public void attack() {
                System.out.println("新的进攻手段");
            }
        };

        h.attack();
        System.out.println(h);
    }


}